﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;

namespace WindowsFormsApplication3
{
    public partial class Consulta_Editoriales : Form
    {
        DataSet ds;
        string rutaBDBiblioteca = "Data Source=JOHANA-PC;Initial Catalog=Biblioteca;Integrated Security=True";
        
        public Consulta_Editoriales()
        {
            InitializeComponent();
        }

        private void Consulta_Editoriales_Load(object sender, EventArgs e)
        {
            string ConsultaSQLLibros = "Select * From Editoriales Order By Cod_Edit";
            ds = new DataSet();

            AgregarTablaDataSetSQLServer(rutaBDBiblioteca, ConsultaSQLLibros, "Editoriales", ref ds);

            Grilla_Edit.DataSource = ds.Tables["Editoriales"];
            TitulosColumnas();

            CargarComboTexto(ref CbNom_Edit);
            CargarComboTexto(ref CbCiudad_Edit);
            CargarComboTexto(ref CbPais_Edit);
        }

        private void TitulosColumnas()
        {
            Grilla_Edit.Columns["Cod_Edit"].HeaderText = "CODIGO";
            Grilla_Edit.Columns["Nom_edit"].HeaderText = "NOMBRE";
            Grilla_Edit.Columns["Dir_Edit"].HeaderText = "DIRECCION";
            Grilla_Edit.Columns["Cod_Postal"].HeaderText = "CODIGO POSTAL";
            Grilla_Edit.Columns["Ciudad_Edit"].HeaderText = "CIUDAD";
            Grilla_Edit.Columns["Pais_Edit"].HeaderText = "PAIS";
            Grilla_Edit.Columns["Tel_Edit"].HeaderText = "TELEFONO";
            Grilla_Edit.Columns["Mail_Edit"].HeaderText = "E_MAIL";
            Grilla_Edit.Columns["Web_Edit"].HeaderText = "WEB";
            Grilla_Edit.Columns["Contac_Edit"].HeaderText = "CONTACTO";
            Grilla_Edit.Columns["Est_Edit"].HeaderText = "ESTADO";
        }

        private void AgregarTablaDataSetSQLServer(string ConexionBD, string ConsultaSQL, string NombreTabla, ref DataSet ds)
        {
            SqlConnection cn = new SqlConnection(ConexionBD);
            SqlDataAdapter adaptador = new SqlDataAdapter(ConsultaSQL, cn);
            cn.Open();
            adaptador.Fill(ds, NombreTabla);
        }


        private void CargarComboTexto(ref ComboBox NombreCombo)
        {
            NombreCombo.Items.Add("Comienza con:");
            NombreCombo.Items.Add("Contiene:");
            NombreCombo.Items.Add("Igual a:");
        }



        private void ConstruirClausulaSQL(string NombreCampo, string Operador, string Valor, ref string Clausula)
        {
            string d1 = "";
            string d2 = "";
            if (Clausula == "")
                Clausula = Clausula + " WHERE ";
            else
                Clausula = Clausula + " AND ";

            switch (Operador)
            {
                case "Comienza con:":
                    d1 = " LIKE '";
                    d2 = "%'";
                    break;
                case "Contiene:":
                    d1 = " LIKE '%";
                    d2 = "%'";
                    break;
                case "Igual a:":
                    d1 = " ='";
                    d2 = "'";
                    break;
            }
            Clausula =
                Clausula + NombreCampo + d1 + Valor + d2;
        } 

        private void BtnBuscar_Click(object sender, EventArgs e)
        {
            string ClausulaSQLEditoriales = "";
            if (CbNom_Edit.Text != "" && TxtNom_Edit.Text != "")
                ConstruirClausulaSQL("Nom_Edit",
                                     CbNom_Edit.Text,
                                     TxtNom_Edit.Text,
                                     ref ClausulaSQLEditoriales);
            if (CbCiudad_Edit.Text != "" && TxtCiudad_Edit.Text != "")
                ConstruirClausulaSQL("Ciudad_Edit",
                                     CbCiudad_Edit.Text,
                                     TxtCiudad_Edit.Text,
                                     ref ClausulaSQLEditoriales);
            if (CbPais_Edit.Text != "" && TxtPais_Edit.Text != "")
                ConstruirClausulaSQL("Pais_Edit",
                                     CbPais_Edit.Text,
                                     TxtPais_Edit.Text,
                                     ref ClausulaSQLEditoriales);
            ds.Tables.Clear();
            AgregarTablaDataSetSQLServer(rutaBDBiblioteca, "Select * From Editoriales" + ClausulaSQLEditoriales, "Consulta", ref ds);
            Grilla_Edit.DataSource = ds.Tables["Consulta"];
        }

        private void BtnQuitar_Click(object sender, EventArgs e)
        {
            ds.Tables.Clear();
            AgregarTablaDataSetSQLServer(rutaBDBiblioteca, "Select * From Editoriales Order By Cod_Edit", "Editoriales", ref ds);
            Grilla_Edit.DataSource = ds.Tables["Editoriales"];
            CbNom_Edit.Text = "";
            CbCiudad_Edit.Text = "";
            CbPais_Edit.Text = "";
            TxtNom_Edit.Text = "";
            TxtCiudad_Edit.Text = "";
            TxtPais_Edit.Text = ""; 

        }

        private void BtnSalir_Click(object sender, EventArgs e)
        {
            this.Close();
        }    
    }
}
